// UTF-8 encoded
//#include <QtGui>
#include <QApplication>
#include <QtScript>
#include <QString>


/*
	пробник простой библиотеки, являющейся фабрикой QT-объектов
	которые потом предполагается использовать в QtScript - сценариях основной системы.


	Помимо фабрики, должны быть механизмы регистрации классов и типов.

 */


//единственное что нужно подключить для подтягивания нужного классов в программу
//#include "./../../../../OTPD/classes/otpd_classes.h"

// а это не обязательно, но если мы хотим перенаправить qDebug в файл - это надо включить один раз в корневом файле...
//#include "classes/qDebugRedirect.h"
//#include "classes/bots/simple_bot.h"
#include <classes/qDebugRedirect.h>
#include <classes/bots/simple_bot.h>


//------------------------------------

// далее некоторые глобальные объявления что бы "не потерять" объекты
/*

*/

#ifdef Q_WS_WIN
#define MY_EXPORT __declspec(dllexport)
#else
#define MY_EXPORT
#endif

extern "C"
   {
    int argc=0;
    char** argv=NULL;

    int value= 0;

         // QApplication libqtsofarm_app(argc, argv);
                                                            /* <-- до тех пор пока есть виртуальный принтер
										который использует QtGui  нужно пользовать QApplication
										если отказаться от рендеринга в картинку -
										можно пользовать QCoreApplication
									*/

    //-----------------------------------------------------------------------
            /*тестовые функции*/
                qint32 get_int_pp_0(); //запрос состояний. За выделение памяти ответственнен вызывающий процесс.

            /*общая инициализация, перехват дебагмсг и т.п. ... надо будет убрать потом*/
                qint32 init_0(ushort *_log_file_name=NULL); //инициация с указанием имени файла для логов.


	//--- важные для нас функции --------------------------------------------
        /* собственно наша "фабрика" */
            QObject* get_object(ushort *_name); //вернуть объект класса с заданным именем

            int register_class(QScriptEngine *_QSEngine, QString ClassName)  ;

   }

/* собственно регистратор "объекта" */
/* для скрипта собственно фабрика даже не нужна, но */
//extern "C" MY_EXPORT int register_class(QScriptEngine *_QSEngine, QString ClassName)  ;
